package algorithm.leetcode.simple;

/*
 在一个 XY 坐标系中有一些点，我们用数组 coordinates 来分别记录它们的坐标，
 其中 coordinates[i] = [x, y] 表示横坐标为 x、纵坐标为 y 的点。

 请你来判断，这些点是否在该坐标系中属于同一条直线上，是则返回 true，否则请返回 false。
 */

/**
 * @author jack.wu
 * @version 1.0
 * @date 2021/1/4
 */
public class Question1232 {

    public static void main(String[] args) {
        int[][] coordinates = {{1, 2}, {2, 3}, {3, 4}, {4, 5}, {5, 6}, {6, 7}};
        Question1232 question = new Question1232();
        boolean flg = question.checkStraightLine(coordinates);
        System.out.println(flg);
    }

    public boolean checkStraightLine(int[][] coordinates) {
        if (coordinates == null || coordinates.length == 0 || coordinates[0].length == 0) {
            return true;
        }
        // 前两个点
        int x = coordinates[1][0] - coordinates[0][0];
        int y = coordinates[1][1] - coordinates[0][1];
        int x1;
        int y1;

        for (int i = 2; i < coordinates.length; i++) {
            x1 = coordinates[i][0] - coordinates[0][0];
            y1 = coordinates[i][1] - coordinates[0][1];
            if (x * y1 != x1 * y) {
                return false;
            }
        }
        return true;
    }



}
